struct ppc64le_func_desc {
    void* entry;
    void* toc;
    void* env;
};

// 提供真实 descriptor 指针给 hook 入口
inline ppc64le_func_desc* make_func_descriptor(void* fn) {
    static ppc64le_func_desc desc;
    // r2 保存的是 TOC pointer，可通过 __builtin_toc() 获取，但非标准
    register void* toc asm("r2");
    desc.entry = fn;
    desc.toc = toc;
    desc.env = nullptr;
    return &desc;
}
